package gui.tableModel;

import java.util.List;

import javax.swing.table.AbstractTableModel;

import service.Ausbilder.AusbilderServiceImpl;
import valueobjects.Ausbilder.Ausbilder;

public class TableModelAusbilder extends AbstractTableModel {

	List<Ausbilder> ausbilderList;

	public TableModelAusbilder() {
	}

	public List<Ausbilder> getAusbilderList() {
		return ausbilderList;
	}

	public void setAusbilderList(List<Ausbilder> ausbilderList) {
		this.ausbilderList = ausbilderList;
		super.fireTableDataChanged();

	}

	public Class<?> getColumnClass(int col) {
		switch (col) {
		case 0:
			return Integer.class;
		case 1:
			return String.class;
		case 2:
			return String.class;
		case 3:
			return Integer.class;
		case 4:
			return String.class;
		case 5:
			return String.class;
		case 6:
			return String.class;
		case 7:
			return String.class;
		default:
			throw new IllegalArgumentException();
		}

	}

	@Override
	public int getColumnCount() {
		return 8;
	}

	public String getColumnName(int col) {
		switch (col) {
		case 0:
			return "Ausbilder_ID";
		case 1:
			return "Name";
		case 2:
			return "Vorname";
		case 3:
			return "Betrieb";
		case 4:
			return "Email";
		case 5:
			return "Vorwahl";
		case 6:
			return "Telefon";
		case 7:
			return "Durchwahl";

		default:
			throw new IllegalArgumentException();
		}
	}

	@Override
	public int getRowCount() {
		if (ausbilderList == null) {
			return 0;
		} else {
			return ausbilderList.size();
		}
	}

	@Override
	public Object getValueAt(int row, int col) {
		if (row < this.ausbilderList.size()) {

			switch (col) {
			case 0:
				return ausbilderList.get(row).getId();
			case 1:
				return ausbilderList.get(row).getName();
			case 2:
				return ausbilderList.get(row).getVorname();
			case 3:
				return ausbilderList.get(row).getFk_betrieb();
			case 4:
				return ausbilderList.get(row).getEmail();
			case 5:
				return ausbilderList.get(row).getVorwahl();
			case 6:
				return ausbilderList.get(row).getTelefon();
			case 7:
				return ausbilderList.get(row).getDurchwahl();
			default:
				throw new IllegalArgumentException();
			}

		}
		return null;
	}

	public Ausbilder getSelectedModel(int index) {
		return this.ausbilderList.get(index);
	}

}
